package br.com.beautycenter.DAO;

import br.com.beautycenter.bean.Sangria;
import br.com.beautycenter.hibernateUtil.DaoBase;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Query;

public class PersisteSangria extends DaoBase<Sangria>{
    
    public List<Sangria> retornarSangria(){
        try {
            return findAll();
        } catch (Exception ex) {
            return new ArrayList<Sangria>();
        }
    }
    
    public void salvar(Sangria sangria){
        save(sangria);
    }
    
    public List<Sangria> retornarSangriasPelaData(Date date){
        Query query = getEntityManager().createQuery("FROM Sangria s WHERE s.dataCadastro =:data");
        query.setParameter("data", date);
        
        try{
            return query.getResultList();
        }catch(Exception ex){
            return new ArrayList<Sangria>();
        }
    }
    
    public void deletar(Sangria sangria){
        try {
            delete(sangria);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    
    public void atualizar(Sangria sangria){
        update(sangria);
    }
    
    /**
     * Executa a seguinte query: SELECT SUM(VALOR_SANGRIA) FROM SANGRIA WHERE DATA_CADASTRO = DATA.
     * 
     * Retorna o somatório do valores de um determinado dia
     * @param data
     * @return 
     */
    public Double retornarSomatorioSangriaPorData(Date data){
        Query query = getEntityManager().createQuery("SELECT SUM(s.valorSangria) FROM Sangria s WHERE "
                + "s.dataCadastro=:data");
        
        query.setParameter("data", data);
        
        try{
            return (Double)query.getSingleResult();
        }catch(Exception ex){
            ex.printStackTrace(); //exibe o erro que deu
            return 0.;
        }
    }
    
}